/*
* nowcode 奇数位丢弃
* 
描述
对于一个由 0..n 的所有数按升序组成的序列，我们要进行一些筛选，每次我们丢弃去当前所有数字中第奇数位个的数。
重复这一过程直到最后剩下一个数。请求出最后剩下的数字。
数据范围：
1≤n≤1000 ，本题有多组输入
输入描述：
每组数据一行一个数字，为题目中的n(n小于等于1000)。
输出描述：
一行输出最后剩下的数字。
* */
/*

* */
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Solution {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while(in.hasNext()){
            int n=in.nextInt(),ans=1;
            while(ans-1<n){
                ans*=2;
            }
            System.out.println(ans/2-1);
        }

    }
}